package model

import (
	"My_Blog02/utils/errmsg"
	"gorm.io/gorm"
)

type Article struct {
	gorm.Model
	Title   string `json:"title" gorm:"type:varchar(255);not null"`
	Author  string `json:"author" gorm:"type:varchar(255);not null"`
	Content string `json:"content" gorm:"type:text;not null"`
}

// 增加文章
func Add_Article(article *Article) (*Article, int) {
	err := db.Create(article).Error
	if err != nil {
		return article, errmsg.ERROR
	}
	return article, errmsg.SUCCSE
}

// 删除文章
func Delete_Article(id int) (Article, int) {
	var article Article
	err := db.Where("id=?", id).First(&article).Error
	if err != nil {
		return article, errmsg.ERROR
	}
	err = db.Delete(&article).Error
	if err != nil {
		return article, errmsg.ERROR
	}
	return article, errmsg.SUCCSE
}

// 修改文章
func Modify_Article(id int, modify_Article Article) (Article, int) {
	err := db.Where("id=?", id).First(&Article{}).Error
	if err == gorm.ErrRecordNotFound {
		//记录不存在
		return modify_Article, errmsg.ERROR
	}
	err = db.Model(&Article{}).Where("id=?", id).Updates(&modify_Article).Error
	if err != nil {
		return modify_Article, errmsg.ERROR
	}
	return modify_Article, errmsg.SUCCSE
}

// 查询文章
func Search_Article(id int) (Article, int) {
	var article Article
	err := db.Where("id=?", id).First(&article).Error
	if err != nil {
		return article, errmsg.ERROR
	}
	return article, errmsg.SUCCSE
}
